home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / ACORNET / OLD-VERSIONS / ACORNET020 / !Acornet_ChLib_core < prev    next >
Unknown  |  1996-10-11  |  10.5 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text


This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 0a f4 3e 43 6f | 72 65 0d 00 14 26 f4 20 |.....>Co|re...&. |
|00000010| 43 6f 70 79 72 69 67 68 | 74 20 31 39 39 35 2c 31 |Copyrigh|t 1995,1|
|00000020| 39 39 36 20 43 6f 6c 69 | 6e 20 48 6f 67 62 65 6e |996 Coli|n Hogben|
|00000030| 0d 00 1e 40 f4 20 59 6f | 75 20 75 73 65 20 74 68 |...@. Yo|u use th|
|00000040| 69 73 20 63 6f 64 65 20 | 66 6f 72 20 61 6e 79 20 |is code |for any |
|00000050| 6e 6f 6e 2d 70 72 6f 66 | 69 74 20 70 75 72 70 6f |non-prof|it purpo|
|00000060| 73 65 2c 20 70 72 6f 76 | 69 64 65 64 20 79 6f 75 |se, prov|ided you|
|00000070| 0d 00 28 3e f4 20 64 6f | 63 75 6d 65 6e 74 20 61 |..(>. do|cument a|
|00000080| 6e 79 20 63 68 61 6e 67 | 65 73 20 6d 61 64 65 20 |ny chang|es made |
|00000090| 61 6e 64 20 61 70 70 6c | 79 20 74 68 65 20 73 61 |and appl|y the sa|
|000000a0| 6d 65 20 63 6f 6e 64 69 | 74 69 6f 6e 73 2e 0d 00 |me condi|tions...|
|000000b0| 32 3b f4 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |2;.=====|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 0d 00 3c 20 f4 20 20 |========|=..< . |
|000000f0| 20 20 20 20 20 46 75 6e | 64 61 6d 65 6e 74 61 6c | Fun|damental|
|00000100| 20 72 6f 75 74 69 6e 65 | 73 0d 00 46 36 f4 20 20 | routine|s..F6. |
|00000110| 20 20 20 20 20 4c 69 62 | 72 61 72 69 65 73 2c 20 | Lib|raries, |
|00000120| 74 72 61 63 69 6e 67 2c | 20 64 61 74 61 74 79 70 |tracing,| datatyp|
|00000130| 65 73 2c 20 61 6c 6c 6f | 63 61 74 69 6f 6e 2c 0d |es, allo|cation,.|
|00000140| 00 50 13 f4 20 20 20 20 | 20 20 20 73 74 72 69 6e |.P.. | strin|
|00000150| 67 73 0d 00 5a 3b f4 3d | 3d 3d 3d 3d 3d 3d 3d 3d |gs..Z;.=|========|
|00000160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000180| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 00 64 |========|=====..d|
|00000190| 04 0d 00 6e 17 dd 20 f2 | 63 6f 72 65 5f 69 6e 69 |...n.. .|core_ini|
|000001a0| 74 28 70 61 74 68 24 29 | 0d 00 78 08 40 25 3d 30 |t(path$)|..x.@%=0|
|000001b0| 0d 00 82 14 63 6f 72 65 | 5f 70 61 74 68 24 3d 70 |....core|_path$=p|
|000001c0| 61 74 68 24 0d 00 8c 0e | f2 74 79 70 65 5f 69 6e |ath$....|.type_in|
|000001d0| 69 74 0d 00 96 0f f2 61 | 6c 6c 6f 63 5f 69 6e 69 |it.....a|lloc_ini|
|000001e0| 74 0d 00 a0 0e f2 65 78 | 69 74 5f 69 6e 69 74 0d |t.....ex|it_init.|
|000001f0| 00 aa 10 65 72 72 6f 72 | 5f 77 69 6d 70 3d a3 0d |...error|_wimp=..|
|00000200| 00 b4 15 65 72 72 6f 72 | 5f 63 6f 6e 74 65 78 74 |...error|_context|
|00000210| 24 3d 22 22 0d 00 be 2f | ee 20 85 20 f2 65 72 72 |$="".../|. . .err|
|00000220| 6f 72 5f 72 65 70 6f 72 | 74 66 61 74 61 6c 28 30 |or_repor|tfatal(0|
|00000230| 2c f6 24 2b 22 20 61 74 | 20 6c 69 6e 65 20 22 2b |,.$+" at| line "+|
|00000240| c3 9e 29 0d 00 c8 0d 74 | 72 61 63 69 6e 67 3d a3 |..)....t|racing=.|
|00000250| 0d 00 d2 17 74 72 61 63 | 65 5f 66 69 6c 65 24 3d |....trac|e_file$=|
|00000260| 22 74 72 61 63 65 22 0d | 00 dc 05 e1 0d 00 e6 04 |"trace".|........|
|00000270| 0d 00 f0 3b f4 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...;.---|--------|
|00000280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 00 fa 26 f4 |--------|---...&.|
|000002b0| 20 20 20 20 20 20 20 4c | 69 62 72 61 72 69 65 73 | L|ibraries|
|000002c0| 20 61 6e 64 20 64 65 70 | 65 6e 64 65 6e 63 69 65 | and dep|endencie|
|000002d0| 73 0d 01 04 3b f4 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |s...;.--|--------|
|000002e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000002f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 01 0e 14 |--------|----....|
|00000310| dd 20 f2 6c 69 62 72 61 | 72 79 28 6c 69 62 24 29 |. .libra|ry(lib$)|
|00000320| 0d 01 18 15 e7 20 ac 20 | a4 6c 69 62 70 28 6c 69 |..... . |.libp(li|
|00000330| 62 24 29 20 8c 0d 01 22 | 21 f4 20 20 50 52 4f 43 |b$) ..."|!. PROC|
|00000340| 74 72 61 63 65 28 22 4c | 6f 61 64 69 6e 67 20 22 |trace("L|oading "|
|00000350| 2b 6c 69 62 24 29 0d 01 | 2c 18 20 20 c8 9b 20 63 |+lib$)..|,. .. c|
|00000360| 6f 72 65 5f 70 61 74 68 | 24 2b 6c 69 62 24 0d 01 |ore_path|$+lib$..|
|00000370| 36 30 20 20 e7 20 a0 28 | 22 46 4e 64 65 66 69 6e |60 . .(|"FNdefin|
|00000380| 74 28 5f 6c 69 62 5f 22 | 2b 6c 69 62 24 2b 22 5f |t(_lib_"|+lib$+"_|
|00000390| 6c 6f 61 64 65 64 2c 54 | 52 55 45 29 22 29 0d 01 |loaded,T|RUE)")..|
|000003a0| 40 25 20 20 f2 74 72 61 | 63 65 28 22 63 61 6c 6c |@% .tra|ce("call|
|000003b0| 69 6e 67 20 22 2b 6c 69 | 62 24 2b 22 5f 69 6e 69 |ing "+li|b$+"_ini|
|000003c0| 74 22 29 0d 01 4a 1c 20 | 20 e7 20 a0 28 22 46 4e |t")..J. | . .("FN|
|000003d0| 22 2b 6c 69 62 24 2b 22 | 5f 69 6e 69 74 22 29 0d |"+lib$+"|_init").|
|000003e0| 01 54 05 cd 0d 01 5e 05 | e1 0d 01 68 04 0d 01 72 |.T....^.|...h...r|
|000003f0| 11 dd 20 a4 6c 69 62 70 | 28 6c 69 62 24 29 0d 01 |.. .libp|(lib$)..|
|00000400| 7c 2e 3d a0 28 22 46 4e | 64 65 66 69 6e 74 28 5f ||.=.("FN|defint(_|
|00000410| 6c 69 62 5f 22 2b 6c 69 | 62 24 2b 22 5f 6c 6f 61 |lib_"+li|b$+"_loa|
|00000420| 64 65 64 2c 46 41 4c 53 | 45 29 22 29 0d 01 86 04 |ded,FALS|E)")....|
|00000430| 0d 01 90 1a dd 20 a4 64 | 65 66 69 6e 74 28 f8 20 |..... .d|efint(. |
|00000440| 76 61 72 25 2c 76 61 6c | 25 29 0d 01 9a 18 e7 20 |var%,val|%)..... |
|00000450| 76 61 72 25 3d 30 20 8c | 20 76 61 72 25 3d 76 61 |var%=0 .| var%=va|
|00000460| 6c 25 0d 01 a4 09 3d 76 | 61 72 25 0d 01 ae 04 0d |l%....=v|ar%.....|
|00000470| 01 b8 1a dd 20 a4 64 65 | 66 73 74 72 28 f8 20 76 |.... .de|fstr(. v|
|00000480| 61 72 24 2c 76 61 6c 24 | 29 0d 01 c2 19 e7 20 76 |ar$,val$|)..... v|
|00000490| 61 72 24 3d 22 22 20 8c | 20 76 61 72 24 3d 76 61 |ar$="" .| var$=va|
|000004a0| 6c 24 0d 01 cc 09 3d 76 | 61 72 24 0d 01 d6 04 0d |l$....=v|ar$.....|
|000004b0| 01 e0 3b f4 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..;.----|--------|
|000004c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000004e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 01 ea 1b f4 20 |--------|--..... |
|000004f0| 20 20 20 20 20 20 45 72 | 72 6f 72 20 72 65 70 6f | Er|ror repo|
|00000500| 72 74 69 6e 67 0d 01 f4 | 3b f4 2d 2d 2d 2d 2d 2d |rting...|;.------|
|00000510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000540| 0d 01 fe 1f dd 20 f2 65 | 72 72 6f 72 5f 72 65 70 |..... .e|rror_rep|
|00000550| 6f 72 74 28 6e 75 6d 25 | 2c 74 65 78 74 24 29 0d |ort(num%|,text$).|
|00000560| 02 08 12 e7 20 65 72 72 | 6f 72 5f 77 69 6d 70 20 |.... err|or_wimp |
|00000570| 8c 0d 02 12 11 20 20 62 | 75 66 25 21 30 3d 6e 75 |..... b|uf%!0=nu|
|00000580| 6d 25 0d 02 1c 28 20 20 | 24 28 62 75 66 25 2b 34 |m%...( |$(buf%+4|
|00000590| 29 3d 74 65 78 74 24 2b | 22 20 22 2b 65 72 72 6f |)=text$+|" "+erro|
|000005a0| 72 5f 63 6f 6e 74 65 78 | 74 24 0d 02 26 2f 20 20 |r_contex|t$..&/ |
|000005b0| c8 99 22 57 69 6d 70 5f | 52 65 70 6f 72 74 45 72 |.."Wimp_|ReportEr|
|000005c0| 72 6f 72 22 2c 62 75 66 | 25 2c 2c 77 69 6d 70 5f |ror",buf|%,,wimp_|
|000005d0| 74 61 73 6b 6e 61 6d 65 | 24 0d 02 30 05 cc 0d 02 |taskname|$..0....|
|000005e0| 3a 12 20 20 85 20 6e 75 | 6d 25 2c 74 65 78 74 24 |:. . nu|m%,text$|
|000005f0| 0d 02 44 05 cd 0d 02 4e | 05 e1 0d 02 58 04 0d 02 |..D....N|....X...|
|00000600| 62 24 dd 20 f2 65 72 72 | 6f 72 5f 72 65 70 6f 72 |b$. .err|or_repor|
|00000610| 74 66 61 74 61 6c 28 6e | 75 6d 25 2c 74 65 78 74 |tfatal(n|um%,text|
|00000620| 24 29 0d 02 6c 1d f2 65 | 72 72 6f 72 5f 72 65 70 |$)..l..e|rror_rep|
|00000630| 6f 72 74 28 6e 75 6d 25 | 2c 74 65 78 74 24 29 0d |ort(num%|,text$).|
|00000640| 02 76 09 f2 65 78 69 74 | 0d 02 80 04 0d 02 8a 13 |.v..exit|........|
|00000650| dd 20 f2 66 61 74 61 6c | 28 74 65 78 74 24 29 0d |. .fatal|(text$).|
|00000660| 02 94 1f f2 65 72 72 6f | 72 5f 72 65 70 6f 72 74 |....erro|r_report|
|00000670| 66 61 74 61 6c 28 30 2c | 74 65 78 74 24 29 0d 02 |fatal(0,|text$)..|
|00000680| 9e 04 0d 02 a8 3b f4 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.....;.-|--------|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 02 b2 |--------|-----...|
|000006c0| 13 f4 20 20 20 20 20 20 | 20 54 72 61 63 69 6e 67 |.. | Tracing|
|000006d0| 0d 02 bc 3b f4 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...;.---|--------|
|000006e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 02 c6 0f dd |--------|---.....|
|00000710| 20 f2 74 72 61 63 65 5f | 6f 6e 0d 02 d0 08 ea 20 | .trace_|on..... |
|00000720| 74 25 0d 02 da 11 e7 20 | ac 20 74 72 61 63 69 6e |t%..... |. tracin|
|00000730| 67 20 8c 0d 02 e4 15 20 | 20 74 25 3d ae 74 72 61 |g ..... | t%=.tra|
|00000740| 63 65 5f 66 69 6c 65 24 | 0d 02 ee 31 20 20 e7 20 |ce_file$|...1 . |
|00000750| 74 25 20 d9 23 74 25 3a | 20 ff 22 25 53 65 74 54 |t% .#t%:| ."%SetT|
|00000760| 79 70 65 20 22 2b 74 72 | 61 63 65 5f 66 69 6c 65 |ype "+tr|ace_file|
|00000770| 24 2b 22 20 26 46 46 46 | 22 0d 02 f8 0f 20 20 74 |$+" &FFF|".... t|
|00000780| 72 61 63 69 6e 67 3d b9 | 0d 03 02 05 cd 0d 03 0c |racing=.|........|
|00000790| 05 e1 0d 03 16 04 0d 03 | 20 10 dd 20 f2 74 72 61 |........| .. .tra|
|000007a0| 63 65 5f 6f 66 66 0d 03 | 2a 0d 74 72 61 63 69 6e |ce_off..|*.tracin|
|000007b0| 67 3d a3 0d 03 34 05 e1 | 0d 03 3e 04 0d 03 48 13 |g=...4..|..>...H.|
|000007c0| dd 20 f2 74 72 61 63 65 | 28 74 65 78 74 24 29 0d |. .trace|(text$).|
|000007d0| 03 52 08 ea 20 74 25 0d | 03 5c 11 e7 20 ac 20 74 |.R.. t%.|.\.. . t|
|000007e0| 72 61 63 69 6e 67 20 e1 | 0d 03 66 13 74 25 3d ad |racing .|..f.t%=.|
|000007f0| 74 72 61 63 65 5f 66 69 | 6c 65 24 0d 03 70 2b e7 |trace_fi|le$..p+.|
|00000800| 20 74 25 3d 30 20 f2 66 | 61 74 61 6c 28 22 43 61 | t%=0 .f|atal("Ca|
|00000810| 6e 6e 6f 74 20 6f 70 65 | 6e 20 74 72 61 63 65 20 |nnot ope|n trace |
|00000820| 66 69 6c 65 22 29 0d 03 | 7a 0d cf 23 74 25 3d a2 |file")..|z..#t%=.|
|00000830| 23 74 25 0d 03 84 0e d5 | 23 74 25 2c 74 65 78 74 |#t%.....|#t%,text|
|00000840| 24 0d 03 8e 08 d9 23 74 | 25 0d 03 98 05 e1 0d 03 |$.....#t|%.......|
|00000850| a2 04 0d 03 ac 3b f4 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.....;.-|--------|
|00000860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 03 b6 |--------|-----...|
|00000890| 16 f4 20 20 20 20 20 20 | 20 44 61 74 61 20 74 79 |.. | Data ty|
|000008a0| 70 65 73 0d 03 c0 3b f4 | 2d 2d 2d 2d 2d 2d 2d 2d |pes...;.|--------|
|000008b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 03 |--------|------..|
|000008e0| ca 10 dd 20 f2 74 79 70 | 65 5f 69 6e 69 74 0d 03 |... .typ|e_init..|
|000008f0| d4 14 de 20 74 79 70 65 | 5f 6e 61 6d 65 24 28 32 |... type|_name$(2|
|00000900| 30 29 0d 03 de 11 74 79 | 70 65 5f 63 6f 75 6e 74 |0)....ty|pe_count|
|00000910| 25 3d 30 0d 03 e8 16 4d | 5f 54 5f 74 79 70 65 3d |%=0....M|_T_type=|
|00000920| 26 46 46 46 46 30 30 30 | 30 0d 03 f2 10 54 5f 61 |&FFFF000|0....T_a|
|00000930| 6e 79 3d 26 30 30 30 30 | 30 0d 03 fc 25 54 5f 73 |ny=&0000|0...%T_s|
|00000940| 74 72 69 6e 67 3d a4 74 | 79 70 65 5f 63 72 65 61 |tring=.t|ype_crea|
|00000950| 74 65 28 22 53 74 72 69 | 6e 67 22 2c 30 29 0d 04 |te("Stri|ng",0)..|
|00000960| 06 05 e1 0d 04 10 04 0d | 04 1a 1f dd 20 a4 74 79 |........|.... .ty|
|00000970| 70 65 5f 63 72 65 61 74 | 65 28 6e 61 6d 65 24 2c |pe_creat|e(name$,|
|00000980| 73 69 7a 65 25 29 0d 04 | 24 12 74 79 70 65 5f 63 |size%)..|$.type_c|
|00000990| 6f 75 6e 74 25 2b 3d 31 | 0d 04 2e 21 74 79 70 65 |ount%+=1|...!type|
|000009a0| 5f 6e 61 6d 65 24 28 74 | 79 70 65 5f 63 6f 75 6e |_name$(t|ype_coun|
|000009b0| 74 25 29 3d 6e 61 6d 65 | 24 0d 04 38 1f 3d 28 74 |t%)=name|$..8.=(t|
|000009c0| 79 70 65 5f 63 6f 75 6e | 74 25 2a 26 31 30 30 30 |ype_coun|t%*&1000|
|000009d0| 30 29 2b 73 69 7a 65 25 | 0d 04 42 04 0d 04 4c 1d |0)+size%|..B...L.|
|000009e0| dd 20 f2 74 79 70 65 5f | 63 68 65 63 6b 28 62 6c |. .type_|check(bl|
|000009f0| 6b 25 2c 74 79 70 65 25 | 29 0d 04 56 3f e7 20 28 |k%,type%|)..V?. (|
|00000a00| 28 62 6c 6b 25 21 2d 34 | 20 82 20 74 79 70 65 25 |(blk%!-4| . type%|
|00000a10| 29 20 80 20 4d 5f 54 5f | 74 79 70 65 29 3c 3e 30 |) . M_T_|type)<>0|
|00000a20| 20 f2 66 61 74 61 6c 28 | 22 54 79 70 65 20 6d 69 | .fatal(|"Type mi|
|00000a30| 73 6d 61 74 63 68 22 29 | 0d 04 60 05 e1 0d 04 6a |smatch")|..`....j|
|00000a40| 04 0d 04 74 3b f4 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...t;.--|--------|
|00000a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 04 7e 2b |--------|----..~+|
|00000a80| f4 20 20 20 20 20 20 20 | 53 70 61 63 65 20 61 6c |. |Space al|
|00000a90| 6c 6f 63 61 74 69 6f 6e | 20 61 6e 64 20 64 61 74 |location| and dat|
|00000aa0| 61 20 74 79 70 65 73 0d | 04 88 3a f4 20 20 20 20 |a types.|..:. |
|00000ab0| 20 20 20 61 6c 6c 6f 63 | 5f 6c 69 73 74 25 20 20 | alloc|_list% |
|00000ac0| 20 20 20 20 20 20 50 6f | 69 6e 74 65 72 20 74 6f | Po|inter to|
|00000ad0| 20 66 69 72 73 74 20 66 | 72 65 65 20 62 6c 6f 63 | first f|ree bloc|
|00000ae0| 6b 0d 04 92 05 f4 0d 04 | 9c 30 f4 20 20 20 2d 3e |k.......|.0. ->|
|00000af0| 20 20 74 79 70 65 20 7c | 20 73 69 7a 65 20 20 20 | type || size |
|00000b00| 20 20 20 20 20 20 2d 3e | 20 54 5f 66 72 65 65 20 | ->| T_free |
|00000b10| 7c 20 73 69 7a 65 0d 04 | a6 2c f4 20 20 20 20 20 || size..|.,. |
|00000b20| 20 20 5b 75 73 65 72 20 | 64 61 74 61 5d 20 20 20 | [user |data] |
|00000b30| 20 20 20 20 20 20 20 20 | 20 6e 65 78 74 20 66 72 | | next fr|
|00000b40| 65 65 0d 04 b0 38 f4 20 | 20 20 20 20 20 20 74 79 |ee...8. | ty|
|00000b50| 70 65 20 7c 20 73 69 7a | 65 20 20 20 20 20 20 20 |pe | siz|e |
|00000b60| 20 20 20 20 20 70 72 65 | 76 69 6f 75 73 20 6e 65 | pre|vious ne|
|00000b70| 78 74 20 70 6f 69 6e 74 | 65 72 0d 04 ba 30 f4 20 |xt point|er...0. |
|00000b80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000b90| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 54 5f 66 | | T_f|
|00000ba0| 72 65 65 20 7c 20 73 69 | 7a 65 0d 04 c4 3b f4 2d |ree | si|ze...;.-|
|00000bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000be0| 2d 2d 2d 2d 2d 0d 04 ce | 04 0d 04 d8 21 f4 20 69 |-----...|....!. i|
|00000bf0| 6e 69 74 69 61 6c 69 73 | 65 20 73 70 61 63 65 20 |nitialis|e space |
|00000c00| 61 6c 6c 6f 63 61 74 69 | 6f 6e 0d 04 e2 11 dd 20 |allocati|on..... |
|00000c10| f2 61 6c 6c 6f 63 5f 69 | 6e 69 74 0d 04 ec 0a ea |.alloc_i|nit.....|
|00000c20| 20 62 6c 6b 25 0d 04 f6 | 14 54 5f 66 72 65 65 3d | blk%...|.T_free=|
|00000c30| 26 46 41 45 45 30 30 30 | 30 0d 05 00 16 54 5f 65 |&FAEE000|0....T_e|
|00000c40| 6e 64 6d 65 6d 3d 26 46 | 45 39 44 30 30 30 30 0d |ndmem=&F|E9D0000.|
|00000c50| 05 0a 11 41 4c 5f 74 79 | 70 65 73 69 7a 65 3d 30 |...AL_ty|pesize=0|
|00000c60| 0d 05 14 0d 41 4c 5f 6e | 65 78 74 3d 34 0d 05 1e |....AL_n|ext=4...|
|00000c70| 0d 41 4c 5f 70 72 65 76 | 3d 38 0d 05 28 14 41 4c |.AL_prev|=8..(.AL|
|00000c80| 5f 65 6e 64 3d 34 20 3a | f4 2b 73 69 7a 65 0d 05 |_end=4 :|.+size..|
|00000c90| 32 0d 41 43 5f 6e 65 78 | 74 3d 30 0d 05 3c 0e 41 |2.AC_nex|t=0..<.A|
|00000ca0| 43 5f 73 74 61 72 74 3d | 34 0d 05 46 0e 41 43 5f |C_start=|4..F.AC_|
|00000cb0| 62 6c 6f 63 6b 3d 38 0d | 05 50 13 61 6c 6c 6f 63 |block=8.|.P.alloc|
|00000cc0| 5f 63 68 75 6e 6b 73 25 | 3d 30 0d 05 5a 13 de 20 |_chunks%|=0..Z.. |
|00000cd0| 61 6c 6c 6f 63 5f 6c 69 | 73 74 25 20 34 0d 05 64 |alloc_li|st% 4..d|
|00000ce0| 12 21 61 6c 6c 6f 63 5f | 6c 69 73 74 25 3d 30 0d |.!alloc_|list%=0.|
|00000cf0| 05 6e 23 e7 20 a4 64 65 | 66 69 6e 74 28 61 6c 6c |.n#. .de|fint(all|
|00000d00| 6f 63 5f 68 65 61 70 73 | 69 7a 65 25 2c 34 30 30 |oc_heaps|ize%,400|
|00000d10| 30 29 0d 05 78 22 f2 5f | 61 6c 6c 6f 63 5f 63 68 |0)..x"._|alloc_ch|
|00000d20| 75 6e 6b 28 61 6c 6c 6f | 63 5f 68 65 61 70 73 69 |unk(allo|c_heapsi|
|00000d30| 7a 65 25 29 0d 05 82 05 | e1 0d 05 8c 04 0d 05 96 |ze%)....|........|
|00000d40| 31 f4 20 61 6c 6c 6f 63 | 61 74 65 20 61 20 6e 65 |1. alloc|ate a ne|
|00000d50| 77 20 63 68 75 6e 6b 20 | 65 6e 61 62 6c 69 6e 67 |w chunk |enabling|
|00000d60| 20 6d 61 6c 6c 6f 63 28 | 73 69 7a 65 25 29 0d 05 | malloc(|size%)..|
|00000d70| a0 1a dd 20 f2 5f 61 6c | 6c 6f 63 5f 63 68 75 6e |... ._al|loc_chun|
|00000d80| 6b 28 73 69 7a 65 25 29 | 0d 05 aa 0c ea 20 63 68 |k(size%)|..... ch|
|00000d90| 75 6e 6b 25 0d 05 b4 18 | 73 69 7a 65 25 3d 28 73 |unk%....|size%=(s|
|00000da0| 69 7a 65 25 2b 33 29 20 | 80 20 2d 34 0d 05 be 15 |ize%+3) |. -4....|
|00000db0| de 20 63 68 75 6e 6b 25 | 20 73 69 7a 65 25 2b 31 |. chunk%| size%+1|
|00000dc0| 39 0d 05 c8 1c 63 68 75 | 6e 6b 25 21 41 43 5f 73 |9....chu|nk%!AC_s|
|00000dd0| 74 61 72 74 3d 54 5f 65 | 6e 64 6d 65 6d 0d 05 d2 |tart=T_e|ndmem...|
|00000de0| 27 63 68 75 6e 6b 25 21 | 28 41 43 5f 73 74 61 72 |'chunk%!|(AC_star|
|00000df0| 74 2b 73 69 7a 65 25 2b | 31 32 29 3d 54 5f 65 6e |t+size%+|12)=T_en|
|00000e00| 64 6d 65 6d 0d 05 dc 2c | f2 5f 61 6c 5f 62 6f 75 |dmem...,|._al_bou|
|00000e10| 6e 64 28 63 68 75 6e 6b | 25 2b 41 43 5f 62 6c 6f |nd(chunk|%+AC_blo|
|00000e20| 63 6b 2c 54 5f 66 72 65 | 65 2b 73 69 7a 65 25 29 |ck,T_fre|e+size%)|
|00000e30| 0d 05 e6 1e f2 5f 61 6c | 5f 6c 69 6e 6b 28 63 68 |....._al|_link(ch|
|00000e40| 75 6e 6b 25 2b 41 43 5f | 62 6c 6f 63 6b 29 0d 05 |unk%+AC_|block)..|
|00000e50| f0 20 63 68 75 6e 6b 25 | 21 41 43 5f 6e 65 78 74 |. chunk%|!AC_next|
|00000e60| 3d 61 6c 6c 6f 63 5f 63 | 68 75 6e 6b 73 25 0d 05 |=alloc_c|hunks%..|
|00000e70| fa 18 61 6c 6c 6f 63 5f | 63 68 75 6e 6b 73 25 3d |..alloc_|chunks%=|
|00000e80| 63 68 75 6e 6b 25 0d 06 | 04 05 e1 0d 06 0e 04 0d |chunk%..|........|
|00000e90| 06 18 18 dd 20 a4 6d 61 | 6c 6c 6f 63 28 74 79 70 |.... .ma|lloc(typ|
|00000ea0| 65 73 69 7a 65 25 29 0d | 06 22 10 ea 20 73 69 7a |esize%).|.".. siz|
|00000eb0| 65 25 2c 6d 65 6d 25 0d | 06 2c 1b 6d 65 6d 25 3d |e%,mem%.|.,.mem%=|
|00000ec0| a4 5f 61 6c 6c 6f 63 28 | 74 79 70 65 73 69 7a 65 |._alloc(|typesize|
|00000ed0| 25 29 0d 06 36 12 e7 20 | 6d 65 6d 25 20 8c 20 3d |%)..6.. |mem% . =|
|00000ee0| 6d 65 6d 25 0d 06 40 1b | 73 69 7a 65 25 3d 74 79 |mem%..@.|size%=ty|
|00000ef0| 70 65 73 69 7a 65 25 20 | 80 20 26 46 46 46 46 0d |pesize% |. &FFFF.|
|00000f00| 06 4a 33 e7 20 73 69 7a | 65 25 3c 61 6c 6c 6f 63 |.J3. siz|e%<alloc|
|00000f10| 5f 68 65 61 70 73 69 7a | 65 25 20 8c 20 73 69 7a |_heapsiz|e% . siz|
|00000f20| 65 25 3d 61 6c 6c 6f 63 | 5f 68 65 61 70 73 69 7a |e%=alloc|_heapsiz|
|00000f30| 65 25 0d 06 54 18 f2 5f | 61 6c 6c 6f 63 5f 63 68 |e%..T.._|alloc_ch|
|00000f40| 75 6e 6b 28 73 69 7a 65 | 25 29 0d 06 5e 1b 6d 65 |unk(size|%)..^.me|
|00000f50| 6d 25 3d a4 5f 61 6c 6c | 6f 63 28 74 79 70 65 73 |m%=._all|oc(types|
|00000f60| 69 7a 65 25 29 0d 06 68 | 12 e7 20 6d 65 6d 25 20 |ize%)..h|.. mem% |
|00000f70| 8c 20 3d 6d 65 6d 25 0d | 06 72 28 f2 66 61 74 61 |. =mem%.|.r(.fata|
|00000f80| 6c 28 22 42 55 47 3a 20 | 48 65 61 70 20 65 78 74 |l("BUG: |Heap ext|
|00000f90| 65 6e 73 69 6f 6e 20 66 | 61 69 6c 65 64 22 29 0d |ension f|ailed").|
|00000fa0| 06 7c 04 0d 06 86 18 dd | 20 a4 5f 61 6c 6c 6f 63 |.|......| ._alloc|
|00000fb0| 28 74 79 70 65 73 69 7a | 65 25 29 0d 06 90 16 ea |(typesiz|e%).....|
|00000fc0| 20 73 69 7a 65 25 2c 62 | 6c 6b 25 2c 72 65 73 74 | size%,b|lk%,rest|
|00000fd0| 25 0d 06 9a 1f 73 69 7a | 65 25 3d 28 74 79 70 65 |%....siz|e%=(type|
|00000fe0| 73 69 7a 65 25 2b 33 29 | 20 80 20 26 46 46 46 43 |size%+3)| . &FFFC|
|00000ff0| 0d 06 a4 15 62 6c 6b 25 | 3d 21 61 6c 6c 6f 63 5f |....blk%|=!alloc_|
|00001000| 6c 69 73 74 25 0d 06 ae | 0e c8 95 20 62 6c 6b 25 |list%...|... blk%|
|00001010| 3c 3e 30 0d 06 b8 1f f4 | 20 20 50 52 49 4e 54 20 |<>0.....| PRINT |
|00001020| 22 4c 6f 6f 6b 69 6e 67 | 20 61 74 20 22 7e 62 6c |"Looking| at "~bl|
|00001030| 6b 25 0d 06 c2 36 20 20 | e7 20 a4 5f 61 6c 5f 74 |k%...6 |. ._al_t|
|00001040| 79 70 65 28 62 6c 6b 25 | 29 3c 3e 54 5f 66 72 65 |ype(blk%|)<>T_fre|
|00001050| 65 20 f2 66 61 74 61 6c | 28 22 48 65 61 70 20 63 |e .fatal|("Heap c|
|00001060| 6f 72 72 75 70 74 22 29 | 0d 06 cc 22 20 20 e7 20 |orrupt")|..." . |
|00001070| a4 5f 61 6c 5f 73 69 7a | 65 28 62 6c 6b 25 29 20 |._al_siz|e(blk%) |
|00001080| 3e 3d 20 73 69 7a 65 25 | 20 8c 0d 06 d6 15 f4 20 |>= size%| ...... |
|00001090| 20 20 20 50 52 49 4e 54 | 20 22 46 69 74 73 22 0d | PRINT| "Fits".|
|000010a0| 06 e0 19 20 20 20 20 f2 | 5f 61 6c 5f 75 6e 6c 69 |... .|_al_unli|
|000010b0| 6e 6b 28 62 6c 6b 25 29 | 0d 06 ea 23 20 20 20 20 |nk(blk%)|...# |
|000010c0| f4 2d 2d 2d 20 57 6f 72 | 74 68 20 73 70 6c 69 74 |.--- Wor|th split|
|000010d0| 74 69 6e 67 20 62 6c 6f | 63 6b 3f 0d 06 f4 27 20 |ting blo|ck?...' |
|000010e0| 20 20 20 e7 20 a4 5f 61 | 6c 5f 73 69 7a 65 28 62 | . ._a|l_size(b|
|000010f0| 6c 6b 25 29 2d 73 69 7a | 65 25 20 3e 3d 20 31 36 |lk%)-siz|e% >= 16|
|00001100| 20 8c 0d 06 fe 1c f4 20 | 20 20 20 20 20 50 52 49 | ...... | PRI|
|00001110| 4e 54 20 22 53 70 6c 69 | 74 74 69 6e 67 22 0d 07 |NT "Spli|tting"..|
|00001120| 08 1c 20 20 20 20 20 20 | 72 65 73 74 25 3d 62 6c |.. |rest%=bl|
|00001130| 6b 25 2b 73 69 7a 65 25 | 2b 38 0d 07 12 34 20 20 |k%+size%|+8...4 |
|00001140| 20 20 20 20 f2 5f 61 6c | 5f 62 6f 75 6e 64 28 72 | ._al|_bound(r|
|00001150| 65 73 74 25 2c 62 6c 6b | 25 21 41 4c 5f 74 79 70 |est%,blk|%!AL_typ|
|00001160| 65 73 69 7a 65 2d 73 69 | 7a 65 25 2d 38 29 0d 07 |esize-si|ze%-8)..|
|00001170| 1c 1a 20 20 20 20 20 20 | f2 5f 61 6c 5f 6c 69 6e |.. |._al_lin|
|00001180| 6b 28 72 65 73 74 25 29 | 0d 07 26 09 20 20 20 20 |k(rest%)|..&. |
|00001190| cc 0d 07 30 1c f4 20 20 | 20 20 20 20 50 52 49 4e |...0.. | PRIN|
|000011a0| 54 20 22 55 6e 6c 69 6e | 6b 69 6e 67 22 0d 07 3a |T "Unlin|king"..:|
|000011b0| 1f 20 20 20 20 20 20 73 | 69 7a 65 25 3d a4 5f 61 |. s|ize%=._a|
|000011c0| 6c 5f 73 69 7a 65 28 62 | 6c 6b 25 29 0d 07 44 09 |l_size(b|lk%)..D.|
|000011d0| 20 20 20 20 cd 0d 07 4e | 35 20 20 20 20 f2 5f 61 | ...N|5 ._a|
|000011e0| 6c 5f 62 6f 75 6e 64 28 | 62 6c 6b 25 2c 28 74 79 |l_bound(|blk%,(ty|
|000011f0| 70 65 73 69 7a 65 25 20 | 80 20 4d 5f 54 5f 74 79 |pesize% |. M_T_ty|
|00001200| 70 65 29 2b 73 69 7a 65 | 25 29 0d 07 58 0f 20 20 |pe)+size|%)..X. |
|00001210| 20 20 3d 62 6c 6b 25 2b | 34 0d 07 62 07 20 20 cd | =blk%+|4..b. .|
|00001220| 0d 07 6c 13 f4 20 20 50 | 52 49 4e 54 20 22 4e 65 |..l.. P|RINT "Ne|
|00001230| 78 74 22 0d 07 76 17 20 | 20 70 74 72 25 3d 62 6c |xt"..v. | ptr%=bl|
|00001240| 6b 25 2b 41 4c 5f 6e 65 | 78 74 0d 07 80 10 20 20 |k%+AL_ne|xt.... |
|00001250| 62 6c 6b 25 3d 21 70 74 | 72 25 0d 07 8a 05 ce 0d |blk%=!pt|r%......|
|00001260| 07 94 06 3d 30 0d 07 9e | 04 0d 07 a8 1d dd 20 a4 |...=0...|...... .|
|00001270| 72 65 61 6c 6c 6f 63 28 | 62 6c 6b 25 2c 6e 65 77 |realloc(|blk%,new|
|00001280| 73 69 7a 65 25 29 0d 07 | b2 24 ea 20 6f 6c 64 73 |size%)..|.$. olds|
|00001290| 69 7a 65 25 2c 63 75 72 | 73 69 7a 65 25 2c 6f 74 |ize%,cur|size%,ot|
|000012a0| 68 65 72 25 2c 74 79 70 | 65 25 0d 07 bc 21 e7 20 |her%,typ|e%...!. |
|000012b0| 62 6c 6b 25 3d 30 20 8c | 20 3d a4 6d 61 6c 6c 6f |blk%=0 .| =.mallo|
|000012c0| 63 28 6e 65 77 73 69 7a | 65 25 29 0d 07 c6 1e 73 |c(newsiz|e%)....s|
|000012d0| 69 7a 65 25 3d 28 6e 65 | 77 73 69 7a 65 25 2b 33 |ize%=(ne|wsize%+3|
|000012e0| 29 20 80 20 26 46 46 46 | 43 0d 07 d0 3c 62 6c 6b |) . &FFF|C...<blk|
|000012f0| 25 2d 3d 34 3a 20 74 79 | 70 65 25 3d a4 5f 61 6c |%-=4: ty|pe%=._al|
|00001300| 5f 74 79 70 65 28 62 6c | 6b 25 29 3a 20 6f 6c 64 |_type(bl|k%): old|
|00001310| 73 69 7a 65 25 3d a4 5f | 61 6c 5f 73 69 7a 65 28 |size%=._|al_size(|
|00001320| 62 6c 6b 25 29 0d 07 da | 15 63 75 72 73 69 7a 65 |blk%)...|.cursize|
|00001330| 25 3d 6f 6c 64 73 69 7a | 65 25 0d 07 e4 1a 6f 74 |%=oldsiz|e%....ot|
|00001340| 68 65 72 25 3d 62 6c 6b | 25 2b 63 75 72 73 69 7a |her%=blk|%+cursiz|
|00001350| 65 25 2b 38 0d 07 ee 20 | e7 20 a4 5f 61 6c 5f 74 |e%+8... |. ._al_t|
|00001360| 79 70 65 28 6f 74 68 65 | 72 25 29 3d 54 5f 66 72 |ype(othe|r%)=T_fr|
|00001370| 65 65 20 8c 0d 07 f8 25 | 20 20 f4 20 63 6f 61 6c |ee ....%| . coal|
|00001380| 65 73 63 65 20 77 69 74 | 68 20 6e 65 78 74 20 66 |esce wit|h next f|
|00001390| 72 65 65 20 62 6c 6f 63 | 6b 0d 08 02 19 20 20 f2 |ree bloc|k.... .|
|000013a0| 5f 61 6c 5f 75 6e 6c 69 | 6e 6b 28 6f 74 68 65 72 |_al_unli|nk(other|
|000013b0| 25 29 0d 08 0c 23 20 20 | 63 75 72 73 69 7a 65 25 |%)...# |cursize%|
|000013c0| 2b 3d 38 2b a4 5f 61 6c | 5f 73 69 7a 65 28 6f 74 |+=8+._al|_size(ot|
|000013d0| 68 65 72 25 29 0d 08 16 | 25 20 20 f2 5f 61 6c 5f |her%)...|% ._al_|
|000013e0| 62 6f 75 6e 64 28 62 6c | 6b 25 2c 74 79 70 65 25 |bound(bl|k%,type%|
|000013f0| 2b 63 75 72 73 69 7a 65 | 25 29 0d 08 20 05 cd 0d |+cursize|%).. ...|
|00001400| 08 2a 17 e7 20 63 75 72 | 73 69 7a 65 25 3e 3d 73 |.*.. cur|size%>=s|
|00001410| 69 7a 65 25 20 8c 0d 08 | 34 1e 20 20 e7 20 63 75 |ize% ...|4. . cu|
|00001420| 72 73 69 7a 65 25 2d 73 | 69 7a 65 25 20 3e 3d 20 |rsize%-s|ize% >= |
|00001430| 31 36 20 8c 0d 08 3e 1f | 20 20 20 20 f4 20 57 6f |16 ...>.| . Wo|
|00001440| 72 74 68 20 73 70 6c 69 | 74 74 69 6e 67 20 62 6c |rth spli|tting bl|
|00001450| 6f 63 6b 0d 08 48 1b 20 | 20 20 20 6f 74 68 65 72 |ock..H. | other|
|00001460| 25 3d 62 6c 6b 25 2b 73 | 69 7a 65 25 2b 38 0d 08 |%=blk%+s|ize%+8..|
|00001470| 52 32 20 20 20 20 f2 5f | 61 6c 5f 62 6f 75 6e 64 |R2 ._|al_bound|
|00001480| 28 6f 74 68 65 72 25 2c | 54 5f 66 72 65 65 2b 63 |(other%,|T_free+c|
|00001490| 75 72 73 69 7a 65 25 2d | 73 69 7a 65 25 2d 38 29 |ursize%-|size%-8)|
|000014a0| 0d 08 5c 19 20 20 20 20 | f2 5f 61 6c 5f 6c 69 6e |..\. |._al_lin|
|000014b0| 6b 28 6f 74 68 65 72 25 | 29 0d 08 66 24 20 20 20 |k(other%|)..f$ |
|000014c0| 20 f2 5f 61 6c 5f 62 6f | 75 6e 64 28 62 6c 6b 25 | ._al_bo|und(blk%|
|000014d0| 2c 74 79 70 65 25 2b 73 | 69 7a 65 25 29 0d 08 70 |,type%+s|ize%)..p|
|000014e0| 07 20 20 cd 0d 08 7a 0d | 20 20 3d 62 6c 6b 25 2b |. ...z.| =blk%+|
|000014f0| 34 0d 08 84 05 cc 0d 08 | 8e 21 20 20 6f 74 68 65 |4.......|.! othe|
|00001500| 72 25 3d a4 6d 61 6c 6c | 6f 63 28 74 79 70 65 25 |r%=.mall|oc(type%|
|00001510| 2b 73 69 7a 65 25 29 0d | 08 98 25 20 20 f2 6d 65 |+size%).|..% .me|
|00001520| 6d 63 70 79 28 6f 74 68 | 65 72 25 2c 62 6c 6b 25 |mcpy(oth|er%,blk%|
|00001530| 2b 34 2c 6f 6c 64 73 69 | 7a 65 25 29 0d 08 a2 13 |+4,oldsi|ze%)....|
|00001540| 20 20 f2 66 72 65 65 28 | 62 6c 6b 25 2b 34 29 0d | .free(|blk%+4).|
|00001550| 08 ac 0d 20 20 3d 6f 74 | 68 65 72 25 0d 08 b6 05 |... =ot|her%....|
|00001560| cd 0d 08 c0 04 0d 08 ca | 11 dd 20 f2 66 72 65 65 |........|.. .free|
|00001570| 28 62 6c 6b 25 29 0d 08 | d4 17 ea 20 73 69 7a 65 |(blk%)..|... size|
|00001580| 25 2c 6f 74 68 65 72 25 | 2c 70 74 72 25 0d 08 de |%,other%|,ptr%...|
|00001590| 2c e7 20 62 6c 6b 25 3d | 30 20 84 20 62 6c 6b 25 |,. blk%=|0 . blk%|
|000015a0| 3d 2d 31 20 f2 66 61 74 | 61 6c 28 22 46 72 65 65 |=-1 .fat|al("Free|
|000015b0| 20 28 4e 55 4c 4c 29 22 | 29 0d 08 e8 0b 62 6c 6b | (NULL)"|)....blk|
|000015c0| 25 2d 3d 34 0d 08 f2 3c | e7 20 a4 5f 61 6c 5f 74 |%-=4...<|. ._al_t|
|000015d0| 79 70 65 28 62 6c 6b 25 | 29 20 3d 20 54 5f 66 72 |ype(blk%|) = T_fr|
|000015e0| 65 65 20 f2 66 61 74 61 | 6c 28 22 42 6c 6f 63 6b |ee .fata|l("Block|
|000015f0| 20 61 6c 72 65 61 64 79 | 20 66 72 65 65 64 22 29 | already| freed")|
|00001600| 0d 08 fc 19 73 69 7a 65 | 25 3d a4 5f 61 6c 5f 73 |....size|%=._al_s|
|00001610| 69 7a 65 28 62 6c 6b 25 | 29 0d 09 06 52 e7 20 62 |ize(blk%|)...R. b|
|00001620| 6c 6b 25 21 28 41 4c 5f | 65 6e 64 2b 73 69 7a 65 |lk%!(AL_|end+size|
|00001630| 25 29 20 3c 3e 20 62 6c | 6b 25 21 41 4c 5f 74 79 |%) <> bl|k%!AL_ty|
|00001640| 70 65 73 69 7a 65 20 f2 | 66 61 74 61 6c 28 22 42 |pesize .|fatal("B|
|00001650| 61 64 20 66 72 65 65 28 | 29 20 6f 72 20 68 65 61 |ad free(|) or hea|
|00001660| 70 20 63 6f 72 72 75 70 | 74 22 29 0d 09 10 18 f4 |p corrup|t").....|
|00001670| 20 43 6f 61 6c 65 73 63 | 65 20 77 69 74 68 20 6e | Coalesc|e with n|
|00001680| 65 78 74 0d 09 1a 17 6f | 74 68 65 72 25 3d 62 6c |ext....o|ther%=bl|
|00001690| 6b 25 2b 73 69 7a 65 25 | 2b 38 0d 09 24 20 e7 20 |k%+size%|+8..$ . |
|000016a0| a4 5f 61 6c 5f 74 79 70 | 65 28 6f 74 68 65 72 25 |._al_typ|e(other%|
|000016b0| 29 3d 54 5f 66 72 65 65 | 20 8c 0d 09 2e 19 20 20 |)=T_free| ..... |
|000016c0| f2 5f 61 6c 5f 75 6e 6c | 69 6e 6b 28 6f 74 68 65 |._al_unl|ink(othe|
|000016d0| 72 25 29 0d 09 38 20 20 | 20 73 69 7a 65 25 2b 3d |r%)..8 | size%+=|
|000016e0| a4 5f 61 6c 5f 73 69 7a | 65 28 6f 74 68 65 72 25 |._al_siz|e(other%|
|000016f0| 29 2b 38 0d 09 42 05 cd | 0d 09 4c 1d f4 20 43 6f |)+8..B..|..L.. Co|
|00001700| 61 6c 65 73 63 65 20 77 | 69 74 68 20 70 72 65 76 |alesce w|ith prev|
|00001710| 69 6f 75 73 3f 0d 09 56 | 20 e7 20 a4 5f 61 6c 5f |ious?..V| . ._al_|
|00001720| 74 79 70 65 28 62 6c 6b | 25 2d 34 29 3d 54 5f 66 |type(blk|%-4)=T_f|
|00001730| 72 65 65 20 8c 0d 09 60 | 25 20 20 6f 74 68 65 72 |ree ...`|% other|
|00001740| 25 3d 62 6c 6b 25 2d a4 | 5f 61 6c 5f 73 69 7a 65 |%=blk%-.|_al_size|
|00001750| 28 62 6c 6b 25 2d 34 29 | 2d 38 0d 09 6a 39 20 20 |(blk%-4)|-8..j9 |
|00001760| f2 5f 61 6c 5f 62 6f 75 | 6e 64 28 6f 74 68 65 72 |._al_bou|nd(other|
|00001770| 25 2c 54 5f 66 72 65 65 | 2b a4 5f 61 6c 5f 73 69 |%,T_free|+._al_si|
|00001780| 7a 65 28 6f 74 68 65 72 | 25 29 2b 38 2b 73 69 7a |ze(other|%)+8+siz|
|00001790| 65 25 29 0d 09 74 05 cc | 0d 09 7e 23 20 20 f2 5f |e%)..t..|..~# ._|
|000017a0| 61 6c 5f 62 6f 75 6e 64 | 28 62 6c 6b 25 2c 54 5f |al_bound|(blk%,T_|
|000017b0| 66 72 65 65 2b 73 69 7a | 65 25 29 0d 09 88 15 20 |free+siz|e%).... |
|000017c0| 20 f2 5f 61 6c 5f 6c 69 | 6e 6b 28 62 6c 6b 25 29 | ._al_li|nk(blk%)|
|000017d0| 0d 09 92 05 cd 0d 09 9c | 05 e1 0d 09 a6 04 0d 09 |........|........|
|000017e0| b0 16 f4 20 66 6f 72 20 | 64 65 62 75 67 67 69 6e |... for |debuggin|
|000017f0| 67 2e 2e 2e 0d 09 ba 11 | dd 20 f2 61 6c 6c 6f 63 |g.......|. .alloc|
|00001800| 5f 64 75 6d 70 0d 09 c4 | 24 ea 20 63 68 75 6e 6b |_dump...|$. chunk|
|00001810| 25 2c 62 6c 6b 25 2c 74 | 79 70 65 2c 73 69 7a 65 |%,blk%,t|ype,size|
|00001820| 25 2c 64 24 2c 74 2c 74 | 25 0d 09 c5 18 74 3d 74 |%,d$,t,t|%....t=t|
|00001830| 72 61 63 69 6e 67 3a 20 | 74 72 61 63 69 6e 67 3d |racing: |tracing=|
|00001840| b9 0d 09 ce 18 63 68 75 | 6e 6b 25 3d 61 6c 6c 6f |.....chu|nk%=allo|
|00001850| 63 5f 63 68 75 6e 6b 73 | 25 0d 09 d8 0d c8 95 20 |c_chunks|%...... |
|00001860| 63 68 75 6e 6b 25 0d 09 | e2 27 20 20 f2 74 72 61 |chunk%..|.' .tra|
|00001870| 63 65 28 22 2d 2d 63 68 | 75 6e 6b 20 26 22 2b c3 |ce("--ch|unk &"+.|
|00001880| 7e 63 68 75 6e 6b 25 2b | 22 2d 2d 22 29 0d 09 ec |~chunk%+|"--")...|
|00001890| 1a 20 20 62 6c 6b 25 3d | 63 68 75 6e 6b 25 2b 41 |. blk%=|chunk%+A|
|000018a0| 43 5f 62 6c 6f 63 6b 0d | 09 f6 1b 20 20 74 79 70 |C_block.|... typ|
|000018b0| 65 25 3d a4 5f 61 6c 5f | 74 79 70 65 28 62 6c 6b |e%=._al_|type(blk|
|000018c0| 25 29 0d 0a 00 1a 20 20 | c8 95 20 74 79 70 65 25 |%).... |.. type%|
|000018d0| 20 3c 3e 20 54 5f 65 6e | 64 6d 65 6d 0d 0a 0a 1d | <> T_en|dmem....|
|000018e0| 20 20 20 20 73 69 7a 65 | 25 3d a4 5f 61 6c 5f 73 | size|%=._al_s|
|000018f0| 69 7a 65 28 62 6c 6b 25 | 29 0d 0a 14 1f 20 20 20 |ize(blk%|).... |
|00001900| 20 64 24 3d c3 7e 28 62 | 6c 6b 25 2d 63 68 75 6e | d$=.~(b|lk%-chun|
|00001910| 6b 25 29 2b 22 3a 20 22 | 0d 0a 1e 12 20 20 20 20 |k%)+": "|.... |
|00001920| c8 8e 20 74 79 70 65 25 | 20 ca 0d 0a 28 1e 20 20 |.. type%| ...(. |
|00001930| 20 20 c9 20 54 5f 61 6e | 79 3a 20 64 24 2b 3d 22 | . T_an|y: d$+="|
|00001940| 55 6e 6b 6e 6f 77 6e 22 | 0d 0a 32 1e 20 20 20 20 |Unknown"|..2. |
|00001950| c9 20 54 5f 66 72 65 65 | 3a 20 64 24 2b 3d 22 3d |. T_free|: d$+="=|
|00001960| 46 52 45 45 3d 22 0d 0a | 3c 09 20 20 20 20 7f 0d |FREE="..|<. ..|
|00001970| 0a 3d 32 20 20 20 20 20 | 20 e7 20 74 79 70 65 25 |.=2 | . type%|
|00001980| 3d 54 5f 73 74 72 69 6e | 67 20 f2 74 72 61 63 65 |=T_strin|g .trace|
|00001990| 28 a4 73 74 72 67 65 74 | 28 62 6c 6b 25 2b 34 29 |(.strget|(blk%+4)|
|000019a0| 29 0d 0a 46 17 20 20 20 | 20 20 20 74 25 3d 74 79 |)..F. | t%=ty|
|000019b0| 70 65 25 3e 3e 3e 31 36 | 0d 0a 50 25 20 20 20 20 |pe%>>>16|..P% |
|000019c0| 20 20 e7 20 74 25 3e 3d | 31 20 80 20 74 25 3c 3d | . t%>=|1 . t%<=|
|000019d0| 74 79 70 65 5f 63 6f 75 | 6e 74 25 20 8c 0d 0a 5a |type_cou|nt% ...Z|
|000019e0| 1e 20 20 20 20 20 20 20 | 20 64 24 2b 3d 74 79 70 |. | d$+=typ|
|000019f0| 65 5f 6e 61 6d 65 24 28 | 74 25 29 0d 0a 64 0b 20 |e_name$(|t%)..d. |
|00001a00| 20 20 20 20 20 cc 0d 0a | 6e 18 20 20 20 20 20 20 | ...|n. |
|00001a10| 20 20 64 24 2b 3d 22 26 | 22 2b c3 7e 74 25 0d 0a | d$+="&|"+.~t%..|
|00001a20| 78 0b 20 20 20 20 20 20 | cd 0d 0a 82 09 20 20 20 |x. |..... |
|00001a30| 20 cb 0d 0a 8c 21 20 20 | 20 20 f2 74 72 61 63 65 | ....! | .trace|
|00001a40| 28 64 24 2b 22 28 22 2b | c3 73 69 7a 65 25 2b 22 |(d$+"("+|.size%+"|
|00001a50| 29 22 29 0d 0a 8d 30 20 | 20 20 20 e7 20 74 79 70 |)")...0 | . typ|
|00001a60| 65 25 3d 54 5f 73 74 72 | 69 6e 67 20 f2 74 72 61 |e%=T_str|ing .tra|
|00001a70| 63 65 28 a4 73 74 72 67 | 65 74 28 62 6c 6b 25 2b |ce(.strg|et(blk%+|
|00001a80| 34 29 29 0d 0a 96 45 20 | 20 20 20 e7 20 62 6c 6b |4))...E | . blk|
|00001a90| 25 21 28 41 4c 5f 65 6e | 64 2b 73 69 7a 65 25 29 |%!(AL_en|d+size%)|
|00001aa0| 20 3c 3e 20 62 6c 6b 25 | 21 41 4c 5f 74 79 70 65 | <> blk%|!AL_type|
|00001ab0| 73 69 7a 65 20 f2 74 72 | 61 63 65 28 22 2a 43 4f |size .tr|ace("*CO|
|00001ac0| 52 52 55 50 54 2a 22 29 | 0d 0a a0 15 20 20 20 20 |RRUPT*")|.... |
|00001ad0| 62 6c 6b 25 2b 3d 38 2b | 73 69 7a 65 25 0d 0a aa |blk%+=8+|size%...|
|00001ae0| 1d 20 20 20 20 74 79 70 | 65 25 3d a4 5f 61 6c 5f |. typ|e%=._al_|
|00001af0| 74 79 70 65 28 62 6c 6b | 25 29 0d 0a b4 07 20 20 |type(blk|%).... |
|00001b00| ce 0d 0a be 1b 20 20 63 | 68 75 6e 6b 25 3d 63 68 |..... c|hunk%=ch|
|00001b10| 75 6e 6b 25 21 41 43 5f | 6e 65 78 74 0d 0a c8 05 |unk%!AC_|next....|
|00001b20| ce 0d 0a c9 0d 74 72 61 | 63 69 6e 67 3d 74 0d 0a |.....tra|cing=t..|
|00001b30| d2 05 e1 0d 0a dc 04 0d | 0a e6 2a f4 20 41 64 64 |........|..*. Add|
|00001b40| 20 73 74 61 72 74 20 61 | 6e 64 20 65 6e 64 20 6d | start a|nd end m|
|00001b50| 61 72 6b 65 72 73 20 74 | 6f 20 61 20 62 6c 6f 63 |arkers t|o a bloc|
|00001b60| 6b 0d 0a f0 1a dd 20 f2 | 5f 61 6c 5f 62 6f 75 6e |k..... .|_al_boun|
|00001b70| 64 28 62 6c 6b 25 2c 74 | 73 25 29 0d 0a fa 18 62 |d(blk%,t|s%)....b|
|00001b80| 6c 6b 25 21 41 4c 5f 74 | 79 70 65 73 69 7a 65 3d |lk%!AL_t|ypesize=|
|00001b90| 74 73 25 0d 0b 04 23 62 | 6c 6b 25 21 28 41 4c 5f |ts%...#b|lk%!(AL_|
|00001ba0| 65 6e 64 2b 28 74 73 25 | 20 80 20 26 46 46 46 46 |end+(ts%| . &FFFF|
|00001bb0| 29 29 3d 74 73 25 0d 0b | 0e 05 e1 0d 0b 18 04 0d |))=ts%..|........|
|00001bc0| 0b 22 15 dd 20 a4 5f 61 | 6c 5f 73 69 7a 65 28 62 |.".. ._a|l_size(b|
|00001bd0| 6c 6b 25 29 0d 0b 2c 1d | 3d 62 6c 6b 25 21 41 4c |lk%)..,.|=blk%!AL|
|00001be0| 5f 74 79 70 65 73 69 7a | 65 20 80 20 26 46 46 46 |_typesiz|e . &FFF|
|00001bf0| 46 0d 0b 36 04 0d 0b 40 | 15 dd 20 a4 5f 61 6c 5f |F..6...@|.. ._al_|
|00001c00| 74 79 70 65 28 62 6c 6b | 25 29 0d 0b 4a 20 3d 62 |type(blk|%)..J =b|
|00001c10| 6c 6b 25 21 41 4c 5f 74 | 79 70 65 73 69 7a 65 20 |lk%!AL_t|ypesize |
|00001c20| 80 20 4d 5f 54 5f 74 79 | 70 65 0d 0b 54 04 0d 0b |. M_T_ty|pe..T...|
|00001c30| 5e 27 f4 20 55 6e 6c 69 | 6e 6b 20 61 20 62 6c 6f |^'. Unli|nk a blo|
|00001c40| 63 6b 20 66 72 6f 6d 20 | 74 68 65 20 66 72 65 65 |ck from |the free|
|00001c50| 20 6c 69 73 74 0d 0b 68 | 17 dd 20 f2 5f 61 6c 5f | list..h|.. ._al_|
|00001c60| 75 6e 6c 69 6e 6b 28 62 | 6c 6b 25 29 0d 0b 72 0a |unlink(b|lk%)..r.|
|00001c70| ea 20 70 74 72 25 0d 0b | 7c 15 70 74 72 25 3d 62 |. ptr%..||.ptr%=b|
|00001c80| 6c 6b 25 21 41 4c 5f 70 | 72 65 76 0d 0b 86 16 21 |lk%!AL_p|rev....!|
|00001c90| 70 74 72 25 3d 62 6c 6b | 25 21 41 4c 5f 6e 65 78 |ptr%=blk|%!AL_nex|
|00001ca0| 74 0d 0b 90 23 e7 20 21 | 70 74 72 25 20 8c 20 21 |t...#. !|ptr% . !|
|00001cb0| 28 21 70 74 72 25 2b 41 | 4c 5f 70 72 65 76 29 3d |(!ptr%+A|L_prev)=|
|00001cc0| 70 74 72 25 0d 0b 9a 05 | e1 0d 0b a4 04 0d 0b ae |ptr%....|........|
|00001cd0| 37 f4 20 4c 69 6e 6b 20 | 61 20 66 72 65 65 20 62 |7. Link |a free b|
|00001ce0| 6c 6f 63 6b 20 6f 6e 74 | 6f 20 74 68 65 20 73 74 |lock ont|o the st|
|00001cf0| 61 72 74 20 6f 66 20 74 | 68 65 20 66 72 65 65 20 |art of t|he free |
|00001d00| 6c 69 73 74 0d 0b b8 15 | dd 20 f2 5f 61 6c 5f 6c |list....|. ._al_l|
|00001d10| 69 6e 6b 28 62 6c 6b 25 | 29 0d 0b c2 0c ea 20 66 |ink(blk%|)..... f|
|00001d20| 69 72 73 74 25 0d 0b cc | 17 66 69 72 73 74 25 3d |irst%...|.first%=|
|00001d30| 21 61 6c 6c 6f 63 5f 6c | 69 73 74 25 0d 0b d6 17 |!alloc_l|ist%....|
|00001d40| 62 6c 6b 25 21 41 4c 5f | 6e 65 78 74 3d 66 69 72 |blk%!AL_|next=fir|
|00001d50| 73 74 25 0d 0b e0 2a e7 | 20 66 69 72 73 74 25 20 |st%...*.| first% |
|00001d60| 8c 20 66 69 72 73 74 25 | 21 41 4c 5f 70 72 65 76 |. first%|!AL_prev|
|00001d70| 3d 62 6c 6b 25 2b 41 4c | 5f 6e 65 78 74 0d 0b ea |=blk%+AL|_next...|
|00001d80| 15 21 61 6c 6c 6f 63 5f | 6c 69 73 74 25 3d 62 6c |.!alloc_|list%=bl|
|00001d90| 6b 25 0d 0b f4 1c 62 6c | 6b 25 21 41 4c 5f 70 72 |k%....bl|k%!AL_pr|
|00001da0| 65 76 3d 61 6c 6c 6f 63 | 5f 6c 69 73 74 25 0d 0b |ev=alloc|_list%..|
|00001db0| fe 05 e1 0d 0c 08 04 0d | 0c 12 3b f4 2d 2d 2d 2d |........|..;.----|
|00001dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001df0| 2d 2d 0d 0c 1c 16 f4 20 | 20 20 20 20 20 20 45 78 |--..... | Ex|
|00001e00| 69 74 20 68 6f 6f 6b 73 | 0d 0c 26 3b f4 2d 2d 2d |it hooks|..&;.---|
|00001e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e40| 2d 2d 2d 0d 0c 30 10 dd | 20 f2 65 78 69 74 5f 69 |---..0..| .exit_i|
|00001e50| 6e 69 74 0d 0c 3a 22 54 | 5f 65 78 69 74 3d a4 74 |nit..:"T|_exit=.t|
|00001e60| 79 70 65 5f 63 72 65 61 | 74 65 28 22 45 78 69 74 |ype_crea|te("Exit|
|00001e70| 22 2c 31 32 29 0d 0c 44 | 0d 45 58 5f 6e 65 78 74 |",12)..D|.EX_next|
|00001e80| 3d 30 0d 0c 4e 0b 45 58 | 5f 66 6e 3d 34 0d 0c 58 |=0..N.EX|_fn=4..X|
|00001e90| 0c 45 58 5f 61 72 67 3d | 38 0d 0c 62 10 65 78 69 |.EX_arg=|8..b.exi|
|00001ea0| 74 5f 6c 69 73 74 25 3d | 30 0d 0c 6c 0d 65 78 69 |t_list%=|0..l.exi|
|00001eb0| 74 69 6e 67 3d a3 0d 0c | 76 05 e1 0d 0c 80 04 0d |ting=...|v.......|
|00001ec0| 0c 8a 1c f4 20 72 75 6e | 20 65 78 69 74 20 68 6f |.... run| exit ho|
|00001ed0| 6f 6b 73 20 61 6e 64 20 | 64 69 65 0d 0c 94 0b dd |oks and |die.....|
|00001ee0| 20 f2 65 78 69 74 0d 0c | 9e 09 ea 20 65 78 25 0d | .exit..|... ex%.|
|00001ef0| 0c a8 09 ee 20 85 20 e0 | 0d 0c b2 0f e7 20 65 78 |.... . .|..... ex|
|00001f00| 69 74 69 6e 67 20 e0 0d | 0c bc 0d 65 78 69 74 69 |iting ..|...exiti|
|00001f10| 6e 67 3d b9 0d 0c c6 12 | 65 78 25 3d 65 78 69 74 |ng=.....|ex%=exit|
|00001f20| 5f 6c 69 73 74 25 0d 0c | d0 0a c8 95 20 65 78 25 |_list%..|.... ex%|
|00001f30| 0d 0c da 42 f4 20 20 50 | 52 4f 43 74 72 61 63 65 |...B. P|ROCtrace|
|00001f40| 28 22 65 78 69 74 20 22 | 2b 46 4e 73 74 72 67 65 |("exit "|+FNstrge|
|00001f50| 74 28 65 78 25 21 45 58 | 5f 66 6e 29 2b 22 20 22 |t(ex%!EX|_fn)+" "|
|00001f60| 2b 53 54 52 24 28 65 78 | 25 21 45 58 5f 61 72 67 |+STR$(ex|%!EX_arg|
|00001f70| 29 29 0d 0c e4 31 20 20 | e7 20 a0 28 22 46 4e 22 |))...1 |. .("FN"|
|00001f80| 2b a4 73 74 72 67 65 74 | 28 65 78 25 21 45 58 5f |+.strget|(ex%!EX_|
|00001f90| 66 6e 29 2b 22 28 65 78 | 25 21 45 58 5f 61 72 67 |fn)+"(ex|%!EX_arg|
|00001fa0| 29 22 29 0d 0c ee 15 20 | 20 65 78 25 3d 65 78 25 |)").... | ex%=ex%|
|00001fb0| 21 45 58 5f 6e 65 78 74 | 0d 0c f8 05 ce 0d 0d 02 |!EX_next|........|
|00001fc0| 05 e0 0d 0d 0c 04 0d 0d | 16 17 dd 20 f2 61 74 65 |........|... .ate|
|00001fd0| 78 69 74 28 66 6e 24 2c | 61 72 67 25 29 0d 0d 20 |xit(fn$,|arg%).. |
|00001fe0| 09 ea 20 65 78 25 0d 0d | 2a 0f e7 20 65 78 69 74 |.. ex%..|*.. exit|
|00001ff0| 69 6e 67 20 e1 0d 0d 34 | 2b f4 20 50 52 4f 43 74 |ing ...4|+. PROCt|
|00002000| 72 61 63 65 28 22 61 74 | 65 78 69 74 20 22 2b 66 |race("at|exit "+f|
|00002010| 6e 24 2b 22 20 22 2b 53 | 54 52 24 61 72 67 25 29 |n$+" "+S|TR$arg%)|
|00002020| 0d 0d 3e 17 65 78 25 3d | a4 6d 61 6c 6c 6f 63 28 |..>.ex%=|.malloc(|
|00002030| 54 5f 65 78 69 74 29 0d | 0d 48 1a 65 78 25 21 45 |T_exit).|.H.ex%!E|
|00002040| 58 5f 66 6e 3d a4 73 74 | 72 64 75 70 28 66 6e 24 |X_fn=.st|rdup(fn$|
|00002050| 29 0d 0d 52 13 65 78 25 | 21 45 58 5f 61 72 67 3d |)..R.ex%|!EX_arg=|
|00002060| 61 72 67 25 0d 0d 5c 1a | 65 78 25 21 45 58 5f 6e |arg%..\.|ex%!EX_n|
|00002070| 65 78 74 3d 65 78 69 74 | 5f 6c 69 73 74 25 0d 0d |ext=exit|_list%..|
|00002080| 66 12 65 78 69 74 5f 6c | 69 73 74 25 3d 65 78 25 |f.exit_l|ist%=ex%|
|00002090| 0d 0d 70 05 e1 0d 0d 7a | 04 0d 0d 84 19 dd 20 f2 |..p....z|...... .|
|000020a0| 6e 6f 61 74 65 78 69 74 | 28 66 6e 24 2c 61 72 67 |noatexit|(fn$,arg|
|000020b0| 25 29 0d 0d 8e 0f ea 20 | 65 78 25 2c 6c 61 73 74 |%)..... |ex%,last|
|000020c0| 25 0d 0d 98 0f e7 20 65 | 78 69 74 69 6e 67 20 e1 |%..... e|xiting .|
|000020d0| 0d 0d a2 2d f4 20 50 52 | 4f 43 74 72 61 63 65 28 |...-. PR|OCtrace(|
|000020e0| 22 6e 6f 61 74 65 78 69 | 74 20 22 2b 66 6e 24 2b |"noatexi|t "+fn$+|
|000020f0| 22 20 22 2b 53 54 52 24 | 61 72 67 25 29 0d 0d ac |" "+STR$|arg%)...|
|00002100| 12 65 78 25 3d 65 78 69 | 74 5f 6c 69 73 74 25 0d |.ex%=exi|t_list%.|
|00002110| 0d b6 0a c8 95 20 65 78 | 25 0d 0d c0 32 20 20 e7 |..... ex|%...2 .|
|00002120| 20 a4 73 74 72 67 65 74 | 28 65 78 25 21 45 58 5f | .strget|(ex%!EX_|
|00002130| 66 6e 29 3d 66 6e 24 20 | 80 20 65 78 25 21 45 58 |fn)=fn$ |. ex%!EX|
|00002140| 5f 61 72 67 3d 61 72 67 | 25 20 8c 0d 0d ca 44 20 |_arg=arg|% ....D |
|00002150| 20 20 20 e7 20 6c 61 73 | 74 25 20 8c 20 6c 61 73 | . las|t% . las|
|00002160| 74 25 21 45 58 5f 6e 65 | 78 74 3d 65 78 25 21 45 |t%!EX_ne|xt=ex%!E|
|00002170| 58 5f 6e 65 78 74 20 8b | 20 65 78 69 74 5f 6c 69 |X_next .| exit_li|
|00002180| 73 74 25 3d 65 78 25 21 | 45 58 5f 6e 65 78 74 0d |st%=ex%!|EX_next.|
|00002190| 0d cb 18 20 20 20 20 f2 | 66 72 65 65 28 65 78 25 |... .|free(ex%|
|000021a0| 21 45 58 5f 66 6e 29 0d | 0d d4 12 20 20 20 20 f2 |!EX_fn).|... .|
|000021b0| 66 72 65 65 28 65 78 25 | 29 0d 0d de 09 20 20 20 |free(ex%|).... |
|000021c0| 20 e1 0d 0d e8 07 20 20 | cd 0d 0d f2 0f 20 20 6c | ..... |..... l|
|000021d0| 61 73 74 25 3d 65 78 25 | 0d 0d fc 15 20 20 65 78 |ast%=ex%|.... ex|
|000021e0| 25 3d 65 78 25 21 45 58 | 5f 6e 65 78 74 0d 0e 06 |%=ex%!EX|_next...|
|000021f0| 05 ce 0d 0e 10 05 e1 0d | 0e 1a 04 0d 0e 24 3b f4 |........|.....$;.|
|00002200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002230| 2d 2d 2d 2d 2d 2d 0d 0e | 2e 1b f4 20 20 20 20 20 |------..|... |
|00002240| 20 20 53 74 72 69 6e 67 | 20 68 61 6e 64 6c 69 6e | String| handlin|
|00002250| 67 0d 0e 38 3b f4 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |g..8;.--|--------|
|00002260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 0e 42 13 |--------|----..B.|
|00002290| dd 20 a4 73 74 72 67 65 | 74 28 73 74 72 25 29 0d |. .strge|t(str%).|
|000022a0| 0e 4c 0a ea 20 73 74 72 | 24 0d 0e 56 0c c8 95 20 |.L.. str|$..V... |
|000022b0| 3f 73 74 72 25 0d 0e 60 | 14 20 20 73 74 72 24 2b |?str%..`|. str$+|
|000022c0| 3d bd 28 3f 73 74 72 25 | 29 0d 0e 6a 0d 20 20 73 |=.(?str%|)..j. s|
|000022d0| 74 72 25 2b 3d 31 0d 0e | 74 05 ce 0d 0e 7e 09 3d |tr%+=1..|t....~.=|
|000022e0| 73 74 72 24 0d 0e 88 04 | 0d 0e 92 18 dd 20 f2 73 |str$....|..... .s|
|000022f0| 74 72 73 65 74 28 73 74 | 72 25 2c 73 74 72 24 29 |trset(st|r%,str$)|
|00002300| 0d 0e 9c 0e 24 73 74 72 | 25 3d 73 74 72 24 0d 0e |....$str|%=str$..|
|00002310| a6 10 73 74 72 25 3f a9 | 73 74 72 24 3d 30 0d 0e |..str%?.|str$=0..|
|00002320| b0 05 e1 0d 0e ba 04 0d | 0e c4 13 dd 20 a4 73 74 |........|.... .st|
|00002330| 72 6c 65 6e 28 73 74 72 | 25 29 0d 0e ce 0a ea 20 |rlen(str|%)..... |
|00002340| 6c 65 6e 25 0d 0e d8 0c | c8 95 20 3f 73 74 72 25 |len%....|.. ?str%|
|00002350| 0d 0e e2 0d 20 20 6c 65 | 6e 25 2b 3d 31 0d 0e ec |.... le|n%+=1...|
|00002360| 05 ce 0d 0e f6 09 3d 6c | 65 6e 25 0d 0f 00 04 0d |......=l|en%.....|
|00002370| 0f 0a 17 dd 20 a4 73 74 | 72 63 68 72 28 73 74 72 |.... .st|rchr(str|
|00002380| 25 2c 63 68 25 29 0d 0f | 14 0c c8 95 20 3f 73 74 |%,ch%)..|.... ?st|
|00002390| 72 25 0d 0f 1e 19 20 20 | e7 20 3f 73 74 72 25 3d |r%.... |. ?str%=|
|000023a0| 63 68 25 20 8c 20 3d 73 | 74 72 25 0d 0f 28 0d 20 |ch% . =s|tr%..(. |
|000023b0| 20 73 74 72 25 2b 3d 31 | 0d 0f 32 05 ce 0d 0f 3c | str%+=1|..2....<|
|000023c0| 06 3d 30 0d 0f 46 04 0d | 0f 50 17 dd 20 a4 73 74 |.=0..F..|.P.. .st|
|000023d0| 72 6e 67 65 74 28 73 74 | 72 25 2c 6e 25 29 0d 0f |rnget(st|r%,n%)..|
|000023e0| 5a 0a ea 20 73 74 72 24 | 0d 0f 64 13 c8 95 20 6e |Z.. str$|..d... n|
|000023f0| 25 3e 30 20 80 20 3f 73 | 74 72 25 0d 0f 6e 12 20 |%>0 . ?s|tr%..n. |
|00002400| 20 73 74 72 24 2b 3d bd | 3f 73 74 72 25 0d 0f 78 | str$+=.|?str%..x|
|00002410| 14 20 20 73 74 72 25 2b | 3d 31 3a 20 6e 25 2d 3d |. str%+|=1: n%-=|
|00002420| 31 0d 0f 82 05 ce 0d 0f | 8c 09 3d 73 74 72 24 0d |1.......|..=str$.|
|00002430| 0f 96 04 0d 0f a0 19 dd | 20 a4 73 74 72 70 62 72 |........| .strpbr|
|00002440| 6b 28 73 74 72 25 2c 73 | 65 74 24 29 0d 0f aa 0c |k(str%,s|et$)....|
|00002450| c8 95 20 3f 73 74 72 25 | 0d 0f b4 1c 20 20 e7 20 |.. ?str%|.... . |
|00002460| a7 73 65 74 24 2c 3f 73 | 74 72 25 29 20 8c 20 3d |.set$,?s|tr%) . =|
|00002470| 73 74 72 25 0d 0f be 0d | 20 20 73 74 72 25 2b 3d |str%....| str%+=|
|00002480| 31 0d 0f c8 05 ce 0d 0f | d2 06 3d 30 0d 0f dc 04 |1.......|..=0....|
|00002490| 0d 0f e6 18 dd 20 a4 73 | 74 72 73 74 72 28 73 74 |..... .s|trstr(st|
|000024a0| 72 25 2c 73 75 62 24 29 | 0d 0f f0 08 ea 20 63 25 |r%,sub$)|..... c%|
|000024b0| 0d 0f fa 0c 63 25 3d 97 | 73 75 62 24 0d 10 04 0c |....c%=.|sub$....|
|000024c0| c8 95 20 3f 73 74 72 25 | 0d 10 0e 34 20 20 e7 20 |.. ?str%|...4 . |
|000024d0| 3f 73 74 72 25 3d 63 25 | 20 e7 20 a4 73 74 72 6e |?str%=c%| . .strn|
|000024e0| 67 65 74 28 73 74 72 25 | 2c a9 73 75 62 24 29 3d |get(str%|,.sub$)=|
|000024f0| 73 75 62 24 20 8c 20 3d | 73 74 72 25 0d 10 18 0d |sub$ . =|str%....|
|00002500| 20 20 73 74 72 25 2b 3d | 31 0d 10 22 05 ce 0d 10 | str%+=|1.."....|
|00002510| 2c 06 3d 30 0d 10 36 04 | 0d 10 40 15 dd 20 a4 73 |,.=0..6.|..@.. .s|
|00002520| 74 72 6c 6f 77 65 72 28 | 73 74 72 24 29 0d 10 4a |trlower(|str$)..J|
|00002530| 0b ea 20 69 25 2c 63 25 | 0d 10 54 12 e3 20 69 25 |.. i%,c%|..T.. i%|
|00002540| 3d 31 20 b8 20 a9 73 74 | 72 24 0d 10 5e 12 20 63 |=1 . .st|r$..^. c|
|00002550| 25 3d 97 c1 73 74 72 24 | 2c 69 25 29 0d 10 68 29 |%=..str$|,i%)..h)|
|00002560| 20 e7 20 63 25 3e 36 34 | 20 e7 20 63 25 3c 39 31 | . c%>64| . c%<91|
|00002570| 20 c1 73 74 72 24 2c 69 | 25 2c 31 29 3d bd 28 63 | .str$,i|%,1)=.(c|
|00002580| 25 2b 33 32 29 0d 10 72 | 05 ed 0d 10 7c 09 3d 73 |%+32)..r|....|.=s|
|00002590| 74 72 24 0d 10 86 04 0d | 10 90 13 dd 20 a4 73 74 |tr$.....|.... .st|
|000025a0| 72 64 75 70 28 73 74 72 | 24 29 0d 10 9a 0a ea 20 |rdup(str|$)..... |
|000025b0| 73 74 72 25 0d 10 a4 22 | 73 74 72 25 3d a4 6d 61 |str%..."|str%=.ma|
|000025c0| 6c 6c 6f 63 28 54 5f 73 | 74 72 69 6e 67 2b a9 73 |lloc(T_s|tring+.s|
|000025d0| 74 72 24 2b 31 29 0d 10 | ae 0e 24 73 74 72 25 3d |tr$+1)..|..$str%=|
|000025e0| 73 74 72 24 0d 10 b8 10 | 73 74 72 25 3f a9 73 74 |str$....|str%?.st|
|000025f0| 72 24 3d 30 0d 10 c2 09 | 3d 73 74 72 25 0d 10 cc |r$=0....|=str%...|
|00002600| 04 0d 10 d6 1d dd 20 a4 | 73 74 72 74 6f 6b 28 f8 |...... .|strtok(.|
|00002610| 20 6c 69 73 74 24 2c 64 | 65 6c 69 6d 24 29 0d 10 | list$,d|elim$)..|
|00002620| e0 0f ea 20 74 6f 6b 65 | 6e 24 2c 69 25 0d 10 ea |... toke|n$,i%...|
|00002630| 15 69 25 3d a7 6c 69 73 | 74 24 2c 64 65 6c 69 6d |.i%=.lis|t$,delim|
|00002640| 24 29 0d 10 f4 18 e7 20 | 69 25 3d 30 20 8c 20 69 |$)..... |i%=0 . i|
|00002650| 25 3d a9 6c 69 73 74 24 | 2b 31 0d 10 fe 17 74 6f |%=.list$|+1....to|
|00002660| 6b 65 6e 24 3d c0 6c 69 | 73 74 24 2c 69 25 2d 31 |ken$=.li|st$,i%-1|
|00002670| 29 0d 11 08 16 6c 69 73 | 74 24 3d c1 6c 69 73 74 |)....lis|t$=.list|
|00002680| 24 2c 69 25 2b 31 29 0d | 11 12 0b 3d 74 6f 6b 65 |$,i%+1).|...=toke|
|00002690| 6e 24 0d 11 1c 04 0d 11 | 26 24 f4 20 63 6f 75 6e |n$......|&$. coun|
|000026a0| 74 20 6f 63 63 75 72 72 | 65 6e 63 65 73 20 6f 66 |t occurr|ences of|
|000026b0| 20 63 68 20 69 6e 20 73 | 74 72 0d 11 30 19 dd 20 | ch in s|tr..0.. |
|000026c0| a4 73 74 72 63 6f 75 6e | 74 28 73 74 72 24 2c 63 |.strcoun|t(str$,c|
|000026d0| 68 24 29 0d 11 3a 0b ea | 20 69 25 2c 6e 25 0d 11 |h$)..:..| i%,n%..|
|000026e0| 44 27 f5 20 6e 25 2b 3d | 31 3a 20 69 25 3d a7 73 |D'. n%+=|1: i%=.s|
|000026f0| 74 72 24 2c 63 68 24 2c | 69 25 2b 31 29 3a 20 fd |tr$,ch$,|i%+1): .|
|00002700| 20 69 25 3d 30 0d 11 4e | 09 3d 6e 25 2d 31 0d 11 | i%=0..N|.=n%-1..|
|00002710| 58 04 0d 11 62 1c dd 20 | f2 6d 65 6d 63 70 79 28 |X...b.. |.memcpy(|
|00002720| 64 65 73 74 25 2c 73 72 | 63 25 2c 6e 25 29 0d 11 |dest%,sr|c%,n%)..|
|00002730| 6c 0c c8 95 20 6e 25 3e | 3d 34 0d 11 76 12 20 20 |l... n%>|=4..v. |
|00002740| 21 64 65 73 74 25 3d 21 | 73 72 63 25 0d 11 80 1e |!dest%=!|src%....|
|00002750| 20 20 64 65 73 74 25 2b | 3d 34 3a 20 73 72 63 25 | dest%+|=4: src%|
|00002760| 2b 3d 34 3a 20 6e 25 2d | 3d 34 0d 11 8a 05 ce 0d |+=4: n%-|=4......|
|00002770| 11 94 09 c8 95 20 6e 25 | 0d 11 9e 12 20 20 3f 64 |..... n%|.... ?d|
|00002780| 65 73 74 25 3d 3f 73 72 | 63 25 0d 11 a8 1e 20 20 |est%=?sr|c%.... |
|00002790| 64 65 73 74 25 2b 3d 31 | 3a 20 73 72 63 25 2b 3d |dest%+=1|: src%+=|
|000027a0| 31 3a 20 6e 25 2d 3d 31 | 0d 11 b2 05 ce 0d 11 bc |1: n%-=1|........|
|000027b0| 05 e1 0d 11 c6 04 0d 11 | d0 17 dd 20 a4 6d 65 6d |........|... .mem|
|000027c0| 63 6d 70 28 61 25 2c 62 | 25 2c 6e 25 29 0d 11 da |cmp(a%,b|%,n%)...|
|000027d0| 0c c8 95 20 6e 25 3e 3d | 34 0d 11 e4 15 20 20 e7 |... n%>=|4.... .|
|000027e0| 20 21 61 25 3c 3e 21 62 | 25 20 8c 20 3d 31 0d 11 | !a%<>!b|% . =1..|
|000027f0| ee 19 20 20 61 25 2b 3d | 34 3a 20 62 25 2b 3d 34 |.. a%+=|4: b%+=4|
|00002800| 3a 20 6e 25 2d 3d 34 0d | 11 f8 05 ce 0d 12 02 09 |: n%-=4.|........|
|00002810| c8 95 20 6e 25 0d 12 0c | 15 20 20 e7 20 3f 61 25 |.. n%...|. . ?a%|
|00002820| 3c 3e 3f 62 25 20 8c 20 | 3d 31 0d 12 16 19 20 20 |<>?b% . |=1.... |
|00002830| 61 25 2b 3d 31 3a 20 62 | 25 2b 3d 31 3a 20 6e 25 |a%+=1: b|%+=1: n%|
|00002840| 2d 3d 31 0d 12 20 05 ce | 0d 12 2a 06 3d 30 0d 12 |-=1.. ..|..*.=0..|
|00002850| 2b 04 0d 12 34 12 dd 20 | a4 6c 65 61 66 28 66 69 |+...4.. |.leaf(fi|
|00002860| 6c 65 24 29 0d 12 3e 08 | ea 20 64 25 0d 12 48 05 |le$)..>.|. d%..H.|
|00002870| f5 0d 12 52 14 20 20 64 | 25 3d a7 66 69 6c 65 24 |...R. d|%=.file$|
|00002880| 2c 22 2e 22 29 0d 12 5c | 18 20 20 66 69 6c 65 24 |,".")..\|. file$|
|00002890| 3d c1 66 69 6c 65 24 2c | 64 25 2b 31 29 0d 12 66 |=.file$,|d%+1)..f|
|000028a0| 0a fd 20 64 25 3d 30 0d | 12 70 05 f5 0d 12 7a 14 |.. d%=0.|.p....z.|
|000028b0| 20 20 64 25 3d a7 66 69 | 6c 65 24 2c 22 3a 22 29 | d%=.fi|le$,":")|
|000028c0| 0d 12 84 18 20 20 66 69 | 6c 65 24 3d c1 66 69 6c |.... fi|le$=.fil|
|000028d0| 65 24 2c 64 25 2b 31 29 | 0d 12 8e 0a fd 20 64 25 |e$,d%+1)|..... d%|
|000028e0| 3d 30 0d 12 98 0a 3d 66 | 69 6c 65 24 0d 12 a2 04 |=0....=f|ile$....|
|000028f0| 0d 12 a3 15 dd 20 a4 64 | 69 72 6e 61 6d 65 28 66 |..... .d|irname(f|
|00002900| 69 6c 65 24 29 0d 12 a4 | 26 66 69 6c 65 24 3d c0 |ile$)...|&file$=.|
|00002910| 66 69 6c 65 24 2c a9 66 | 69 6c 65 24 2d a9 a4 6c |file$,.f|ile$-..l|
|00002920| 65 61 66 28 66 69 6c 65 | 24 29 29 0d 12 a5 1f e7 |eaf(file|$)).....|
|00002930| 20 c2 66 69 6c 65 24 29 | 3d 22 2e 22 20 66 69 6c | .file$)|="." fil|
|00002940| 65 24 3d c0 66 69 6c 65 | 24 29 0d 12 a6 0a 3d 66 |e$=.file|$)....=f|
|00002950| 69 6c 65 24 0d 12 a7 04 | 0d 12 ac 13 dd 20 a4 67 |ile$....|..... .g|
|00002960| 65 74 65 6e 76 28 76 61 | 72 24 29 0d 12 b6 0d ea |etenv(va|r$).....|
|00002970| 20 6c 65 6e 25 2c 46 25 | 0d 12 c0 34 c8 99 22 58 | len%,F%|...4.."X|
|00002980| 4f 53 5f 52 65 61 64 56 | 61 72 56 61 6c 22 2c 76 |OS_ReadV|arVal",v|
|00002990| 61 72 24 2c 62 75 66 25 | 2c 32 35 36 2c 30 2c 33 |ar$,buf%|,256,0,3|
|000029a0| 20 b8 20 2c 2c 6c 65 6e | 25 3b 46 25 0d 12 ca 10 | . ,,len|%;F%....|
|000029b0| e7 20 46 25 80 31 20 8c | 20 3d 22 22 0d 12 d4 10 |. F%.1 .| =""....|
|000029c0| 62 75 66 25 3f 6c 65 6e | 25 3d 31 33 0d 12 de 0a |buf%?len|%=13....|
|000029d0| 3d 24 62 75 66 25 0d ff | |=$buf%..| |
+--------+-------------------------+-------------------------+--------+--------+